#ifndef MATRIZITERADOR_CPP
#define MATRIZITERADOR_CPP

#include "MatrizIterador.h"
#include "Matriz.h"

template <class T>
MatrizIterador<T>::MatrizIterador(const Matriz<T>& iterable)
{
	this->iterable = iterable;
	Reiniciar();
}

template <class T>
void MatrizIterador<T>::Reiniciar()
{
	posicion = 0;
}

template <class T>
bool MatrizIterador<T>::HayElemento() const
{
	return posicion < iterable.Largo();
}

template <class T>
const Array<T>& MatrizIterador<T>::ElementoActual() const
{
	assert(HayElemento());
	return iterable[posicion];
}

template <class T>
void MatrizIterador<T>::Avanzar()
{
	posicion++;
}

#endif